<?php

class Proveedor_Model extends CI_Model {

    const STR_NOMBRE_TABLA = 'persona_juridica';
    const STR_NOMBRE_TABLA_PERSONA = 'persona';
    const STR_NOMBRE_TABLA_USUARIO = 'usuario';
    const STR_NOMBRE_TABLA_COTIZACION_REPUESTO_SOLICITUD = 'cotizacion_repuesto_solicitud';
    const STR_NOMBRE_TABLA_SOLICITUD = 'solicitud';
    const STR_NOMBRE_TABLA_COTIZACION = 'cotizacion';
    const STR_NOMBRE_TABLA_REPUESTO = 'repuesto';
    const STR_NOMBRE_TABLA_TABLA_MAESTRA = 'tabla_maestra';
    const STR_NOMBRE_TABLA_MODELO = 'modelo';
    const STR_NOMBRE_TABLA_MARCA = 'marca';

    function __construct() {
        parent::__construct();
    }

    /**
     * Listar los proveedores registrados en el sistema.
     * @author Fernando Esteban Valerio
     * @param $idMarca Id Marca
     * @return array
     */
    function getListProveedor($idMarca=0) {
        $sql = "usuario.id_usuario AS id_usuario,usuario.id_persona AS id_persona,persona.correo AS correo,persona_juridica.razon_social AS razon_social";
        $this->db->select($sql);
        $this->db->from(self::STR_NOMBRE_TABLA);
        $this->db->join(self::STR_NOMBRE_TABLA_PERSONA, "persona.id_persona = persona_juridica.id_persona");
        $this->db->join(self::STR_NOMBRE_TABLA_USUARIO, "usuario.id_persona = persona.id_persona");

        if ($idMarca > 0) {
            $this->db->join(self::STR_NOMBRE_TABLA_PROVEEDOR_MARCA, "persona.id_persona = proveedor_marca.id_persona");
            $this->db->where('proveedor_marca.id_estado', INT_ESTADO_ACTIVO);
        }
        $this->db->where('persona.id_estado', INT_ESTADO_ACTIVO);
        $this->db->where('persona.id_tipo_cliente', INT_CLIENTE_PROVEEDOR);
        $query = $this->db->get();
        return $query->result();
    }

    /**     
     * Insertar el proveedor ya aprobado por el administrador en la tabla persona
     * @author Leidy Uribe Marcos
     */
    function insertarProveedor($data) {
        $this->db->set('id_estado', $data['id_estado']);
        $this->db->set('id_ubigeo', $data['id_ubigeo']);
        $this->db->set('id_tipo_cliente', INT_CLIENTE_PROVEEDOR);
        $this->db->set('direccion', $data['direccion']);
        $this->db->set('correo', $data['correo']);
        $this->db->set('telefono', $data['telefono']);
        $this->db->set('usuario_registro', $data['usuario_registro']);
        $this->db->set('fecha_registro', $data['fecha_registro']);
        $this->db->insert(self::STR_NOMBRE_TABLA_PERSONA);
    }

    /**
     * pone el estado de la solicitud en cero que significa inactivo
     * @author Fernando Esteban Valerio
     * @return array
     */
    function updateSolicitudUsuario($data) {
        $this->db->set('estado_solicitud', 0);
        $this->db->where('id_solicitud_usuario', $data ['id_usuario']);
        $this->db->update('solicitud_usuario');
    }
    
    /**
     * Método que nos devuelve los datos para el reporte del proveedor
     * @author Andrés Guizado Díaz
     */
    
    function getReporteProveedor(){
    	$query = "SELECT cotizacion.id_cotizacion AS id_coti, cotizacion.fecha_registro AS fecha, solicitud.id_solicitud AS id_soli, solicitud.id_taller AS id_tall, tabla_maestra.nombre AS taller,marca.nombre AS marca, modelo.nombre AS modelo, SUM(cotizacion_repuesto_solicitud.total) AS total, persona_juridica.razon_social AS proveedor, COUNT(cotizacion_repuesto_solicitud.id_cotizacion) AS cantidad, tarifario.tarifa_real AS tarifario
FROM cotizacion_repuesto_solicitud
INNER JOIN solicitud ON cotizacion_repuesto_solicitud.id_solicitud = solicitud.id_solicitud
INNER JOIN cotizacion ON cotizacion_repuesto_solicitud.id_cotizacion = cotizacion.id_cotizacion
INNER JOIN tabla_maestra ON solicitud.id_taller = tabla_maestra.id_tabla_maestra
INNER JOIN modelo ON solicitud.id_modelo = modelo.id_modelo
INNER JOIN marca ON modelo.id_marca = marca.id_marca
INNER JOIN usuario ON cotizacion.id_usuario= usuario.id_usuario
INNER JOIN persona_juridica ON usuario.id_persona= persona_juridica.id_persona
INNER JOIN tarifario ON persona_juridica.id_persona = tarifario.id_persona
WHERE cotizacion_repuesto_solicitud.seleccionado = 1
GROUP BY cotizacion.id_cotizacion, cotizacion.fecha_registro, solicitud.id_solicitud, solicitud.id_taller, tabla_maestra.nombre, marca.nombre, modelo.nombre, persona_juridica.razon_social";
        $query = $this->db->query($query);
    	return $query->result();
    }

}
